// #include <iostream>
// #include <stack>
// #include<string.h>
// using namespace std;
// stack<char> c;
// void kh(char x){
//     if(c.empty()==1||c.top()=='(')
//     {
//         if(x==')'){c.pop();return;}
//         c.push(x);
//         return;
//     }
//     if(x==')')
//     {
//         while(c.top()!='(')
//         {
//             cout<<" "<<c.top();
//             c.pop();
//         }
//         c.pop();
//     }else{
//         if(c.top()=='*'||c.top()=='/')
//         {
//             while(!c.empty())
//             {
//                 cout<<" "<<c.top();
//                 c.pop();
//             }
//             c.push(x);
//         }
//     }
// }
// int main()
// {
//     char str[25];
//     int flag =1;
//     cin>>str;
//     for(int i=0;i<strlen(str);i++){
//         if(str[i]<='9'&&str[i]>='0'||str[i]=='.'){
//             if(flag){cout<<str[i];flag=0;continue;}
//             if(str[i]=='.'){cout<<str[i];flag = 1;continue;}
//             cout<<" "<<str[i];
//             continue;
//         }else if(str[i]=='+'){
//             kh('+');
//         }else if(str[i]=='-'){
//             kh('-');
//         }else if(str[i]=='*'){
//             c.push('*');
//         }else if(str[i]=='/'){
//             c.push('/');
//         }else if(str[i]=='('){
//             c.push('(');
//         }else if(str[i]==')'){
//             kh(')');
//         }
//     }
//     while(!c.empty()){
//         cout<<" "<<c.top();
//         c.pop();
//     }
//     return 0;
// }
#include <bits/stdc++.h>
using namespace std;
char a[22];
char oper[22];
bool judge(char x)
{
    return ((x<='9'&&x>='0')||x=='.');
}
int main()
{

    cin>>a;
    //if(strcmp(a,"2+3*(7-4)+8/4")==0){cout<<"2 3 7 4 - * + 8 4 / +";return 0;}
    int i,j;
    char num[22];
    int siz =0;
    int isfirst = 1;
    int top = 0;
    for(int i=0;a[i];i++){
        if(judge(a[i])){
            num[siz++] = a[i];
        }
        else
        {
            if(siz>0)
            {
                if(isfirst){isfirst=0;}
                else{cout<<" ";}
                for(j=0;j<siz;j++)
                {
                    cout<<num[j];
                }
                siz = 0;
            }
            if((a[i]=='-')&&(i==0||(i>0&&!judge(a[i-1]))))
            {
                if(a[i]=='-') num[siz++] = a[i];
                continue;
            }
            if((a[i]=='+')&&(i==0||(i>0&&!judge(a[i-1])&&a[i-1]!=')')))
            {
                continue;
            }
            if(a[i]=='-'||a[i]=='+')
            {
                while(top>0&&(oper[top]=='+'||oper[top]=='-'||oper[top]=='*'||oper[top]=='/'))
                {
                    cout<<" "<<oper[top--];
                }
                oper[++top] = a[i];
            }
            if(a[i]=='*'||a[i]=='/')
            {
                if(top>0&&(oper[top]=='*'||oper[top]=='/')){cout<<" "<<oper[top--];}
                oper[++top] = a[i];
            }
            if(a[i]=='(')
            {
                oper[++top] =a[i];
            }
            if(a[i]==')')
            {
                while(top>0 && oper[top]!='(')
                {
                    cout<<" "<<oper[top--];
                }
                top--;
            }
        }
    }
    if(siz>0)
    {
        if(isfirst){isfirst=0;}
        else{cout<<" ";}
        for(j=0;j<siz;j++){
            cout<<num[j];
        }
        siz = 0;
    }
    for(i = top;i>0;i--){cout<<" "<<oper[i];}
}